package com.demo.entity.Vo;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

@Data
public class VtePreventiveVo {
    @ApiModelProperty(value = "vte诊断序列号")
    @TableId(value = "vte_preventive_id", type = IdType.AUTO)
    private Integer vtePreventiveId;

    @ApiModelProperty(value = "病患序列号")
    @TableField("patient_id")
    @NotNull(message = "病患序列号不能为空")
    private Integer patientId;

    @ApiModelProperty(value = "诊断类别1Caprini(外科)2Padua(内科)")
    @TableField("preventive_type")
    @NotNull(message = "诊断类别不能为空")
    private Integer preventiveType;

    @ApiModelProperty(value = "风险评估结果jeson对象存储")
    @TableField("preventive_risk_result")
    private String preventiveRiskResult;

    @ApiModelProperty(value = "年龄")
    @TableField("patient_age")
    @NotNull(message = "年龄不能能为空")
    private Integer patientAge;

    @ApiModelProperty(value = "体重")
    @TableField("patient_weight")
    @NotBlank(message = "体重不能为空")
    private BigDecimal patientWeight;

    @ApiModelProperty(value = "身高")
    @TableField("patient_height")
    @NotBlank(message = "身高不能为空")
    private BigDecimal patientHeight;

    @ApiModelProperty(value = "风险评估时间")
    @TableField(value = "preventive_risk_time",fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date preventiveRiskTime;

    @ApiModelProperty(value = "风险评估得分")
    @TableField("preventive_risk_score")
    private Integer preventiveRiskScore;

    @ApiModelProperty(value = "风险评估分层")
    @TableField("preventive_risk_rank")
    private Integer preventiveRiskRank;

    @ApiModelProperty(value = "风险评估建议jeson对象存储")
    @TableField("preventive_risk_advise")
    private String preventiveRiskAdvise;

    @ApiModelProperty(value = "确认时间")
    @TableField("risk_confirm_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date riskConfirmTime;

    @ApiModelProperty(value = "确认用户")
    @TableField("risk_confirm_user_id")
    private Integer riskConfirmUserId;

    @ApiModelProperty(value = "禁忌评估时间")
    @TableField("preventive_taboo_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date preventiveTabooTime;

    @ApiModelProperty(value = "禁忌评估结果")
    @TableField("preventive_taboo_result")
    private String preventiveTabooResult;

    @ApiModelProperty(value = "禁忌评估处置建议jeson对象存储")
    @TableField("preventive_taboo_advise")
    private String preventiveTabooAdvise;

    @ApiModelProperty(value = "其他预防jeson对象存储")
    @TableField("other_prevention")
    private String otherPrevention;

    @ApiModelProperty(value = "诊断时机1新入2术后3分娩4出院5病情变化6定期")
    @TableField("diagnose_opportunity")
    @NotNull(message = "诊断时机不能为空")
    private Integer diagnoseOpportunity;

    @ApiModelProperty(value = "删除时间")
    @TableField("deleted_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date deletedTime;

    @ApiModelProperty(value = "删除人ID号")
    @TableField("deleted_user_id")
    private Integer deletedUserId;

    @ApiModelProperty(value = "创建时间&诊断时间")
    @TableField(value = "created_time",fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createdTime;

    @ApiModelProperty(value = "创建人ID号&诊断时间")
    @TableField("created_user_id")
    @NotNull(message = "创建人ID不能为空")
    private Integer createdUserId;

    @ApiModelProperty(value = "签字时间")
    @TableField("sign_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date signTime;

    @ApiModelProperty(value = "签字ID号")
    @TableField("sign_user_id")
    private Integer signUserId;

    @ApiModelProperty(value = "更新时间")
    @TableField(value = "updated_time",fill = FieldFill.UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updatedTime;

    @ApiModelProperty(value = "更新人ID号")
    @TableField("updated_user_id")
    private Integer updatedUserId;

    @ApiModelProperty(value = "下次评估时间")
    @TableField("next_preventive_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date nextPreventiveTime;


    //病患名称
    private String patientName;
    //确认人名称
    private String riskConfirmUserName;
    //签字人名称
    private String signUserName;
}
